/*
 * Context.h
 *
 *  Created on: Jan 27, 2011
 *      Author: bvd
 */

#ifndef EMBEDDEDSYSTEMX_H_
#define EMBEDDEDSYSTEMX_H_

#include <iostream>
#include "State/State.h"
#include "Command/Command.h"

namespace application {
	class Command;
	class State;

	class Context {
	public:
		Context();
		virtual ~Context();
		void handleCommand(Command*);
		State* getCurrentState();
		void setCurrentState(State*);

		void handleSecondaryCommand(Command*);
		State* getSecondaryState();
		void setSecondaryState(State*);

	private:
		State* pCurrentState;
		State* pSecondaryState;
	};
}
#endif /* EMBEDDEDSYSTEMX_H_ */
